"""
 本代码显示了各类字面量
  --13
  --12.4
  --hello World
"""
# 写一个整数字面量
money1 = 100
# 写一个浮点型字面量
print("总共", money1, "元")
money = 30
money1 = money1 -money
print("东西", money, "元", "还剩", money1, "元")

"""
    输出整数、浮点型、字符串类型输出
"""
int_3 = (type(111))
float_5 = (type(13.14))
string = (type("hello word"))
print(int_3)
print(float_5)
print(string)

# 标题：数据类型转换
# type(整数、浮点型、字符串)
# 将变量类型输出
name = "heima"
name_type = type(name)
print(name_type)

# 将数字转换为字符串
num_str = str(11)
print(type(num_str), num_str)

num_float = str(13.14)
print(type(num_float), num_float)

# 将字符串转换为数字，必须字符串内的内容是数字
num_int = int("11")
print(type(num_int), num_int)

float_str = float("13.14")
print(type(float_str), float_str)

# 想要字符串转换为数字，必须要求字符串的内容都是数字

# 整数转浮点
float_int = float(11)
print(type(float_int), float_int)

# 浮点数转整数
int_num = int(13.14)
print(type(int_num), int_num)
# 浮点数比整数表达的含义要丰富得多，需要注意整数转小数后丢失精度

# 标题：标识符
"""
    标识符只能出现英文、中文、数字、下划线_,其他任何都不允许
    不推荐使用中文，数字不能用来开头"1_name"；大小写分开敏感"and","AND"，不可使用关键字"class = 13";
    和关键字大小写不一样的话不算占用关键字CLass = 1；
"""
"""
标识符的规划：
    变量名：
        见名知意   name = "张三"  age = 11
        下划线命名法   first_number = 1  student_nickname = "张三"
        英文字母全小写   (命名变量的英文字母，应全部小写)    name = "张三"  age = 11 
    类名：
    方法名：
    不同的标识符有不同的规范
"""
# 运算符
"""
    用来做加减乘除的；
    特别注意：python中  // 表示取整除   %取余  
    **指数：a**b为10的20次方，输出结果100000000000000000000
"""
print("2 + 2 = ", 2 + 2)   # 4
print("2 - 1 = ", 2 - 1)   # 1
print("2 * 2 = ", 2 * 2)   # 4
print("2 / 2 = ", 2 / 2)   # 1.0
print("11 // 2 = ", 11 // 2)   # 5
print("11 % 2 = ", 11 % 2)   # 1
print("2 ** 4 = ", 2 ** 4)   # 16



"""
    赋值运算符
    = 把右边的结果赋给左边的变量
    符合运算符
    +=  c += a等效于c=c+a
    -= c -= a等效于c=c-a
    *= c *= a等效于c=c*a
    /= c /= a等效于c=c/a
    //= c //= a等效于c=c//a
    %= c %= a等效于c=c%a
    **= c **= a等效于c = c ** c
"""
num = 1 + 2 * 4
print("num = 1 + 2 *4: ", num)
num += 1   # num=num + 1
print("num += 1: ", num)
num -= 1   # num =num - 1

# 字符串扩展
"""
字符串的多种定义方法：
    name = '海马程序员'
    name = "黑马程序员"
    name = """ """
    
"""
# 三引号
name = """我是黑马程序员"""
print(type(name))

# 字符串内包含双引号
name = '"黑马程序员"'
print(name)
# 在字符串内包含单引号
name = "'heima'"
# 使用转义字符\ 接触引号作用
# name = " \"黑马程序员\""
print(name)
name = '\'黑马程序员\''
print(name)

# 字符串的拼接  使用+符号即可，字符串不能通过+和整数、浮点型进行拼接
# 字符串字面量拼接的场景
print("学IT" + "就来黑马程序员")
# 字符串和变量之间的拼接
name = "海马程序员"
address = "白云区沙文镇"
print("我的名字叫：" + name + "，我家住：" + address)
print("我的名字叫：", name, "，我家住：", address)

# 字符串格式化方式1
"""
    通过占位的形式拼接字符串
    name = "黑马程序员"
    message = "学IT就来%s" % name
    print(message)
    
    %表示占位；
    s表示将变量变成字符串放入占位的地方
    综合就是我先占个位，然后一会有一个变量过来，我把他变成字符串再放进去
"""
class_num = 57
agv_salary = 16870
message = "python大数据学科，北京%s期，毕业平均工资：%s" % (class_num, agv_salary)
# 多个变量占位需要用括号括起来，并按照占位顺序填入，英文逗号分隔开；
print(message)


"""
    常用3种占位方式：
    %s:将内容转换成字符串放入占位
    %d:将内容转换成整数放入占位
    %f:将内容转换成浮点型放入占位
"""
name = "传播知音"
set_up_year = 2006
stock_price = 19.99
print("我是：%s，我成立于：%d，我今年的股价是：%.2f" % (name, set_up_year, stock_price))
message = "我是：%s, 我成立于：%d，我今年的股价是：%f" % (name, set_up_year, stock_price)
print(message)

# 字符串格式化的进度控制
"""
我们可以使用辅助符号 "m.n"来控制数据的宽度和精度
    m：控制宽度，要求是数字（很少使用），设置的宽度小于数字本身，不生效
    n：控制小数点精度，要求是数字，会进行四舍五入 
%5d:表示将整数的宽度控制在5位，如数字11，被设置为5d，就会变成:[空格][空格][空格]11，用三个空格补足宽度。
%5.2f:表示将宽度控制为5，将小数点精度设置为2
    小数点和小数部分也算入宽度计算。如，对11.345设置了%7.2f后，结果是:[空格][空格]11.35。2个空格补足宽度，
小数部分限制2位精度后，四舍五入为 35
%.2f:表示不限制宽度，只设置小数点精度为2，如11.345设置%.2f后，结果是11.35
"""
# 实列
num = 11
num1 = 11.123
print("数字11限制宽度5，结果是：%5d" % num)
print("数字11限制宽度1，结果是：%1d" % num)
print("数字11.123限制宽度7，精度2，结果是：%7.2f" % num1)
print("数字11.123宽度不限制，精度2，结果是：%.2f" % num1)

# 字符串格式化方式2
"""
    通过语法：f"内容{变量}"的方式来快速格式化
    这种方式特点就是不理会类型，不对数据进行精度控制，适合对精度没有要求的时候去快速使用
"""
name = "传播知音"
set_up_year = 2006
stock_price = 19.99
# f:使用format是可视化的首字母
print(f"我是{name}, 我成立于：{set_up_year}年，我今年的股价是：{stock_price}")

# 对表达式进行格式化
"""
表达式："一条具有明确执行结果的代码语句"       如1+1、5*2都是表达式，结果是一个数字
又或者name ="张三" num = 1+1  都是表达式，张三赋值给name，1+1赋值给num
在无需对变量进行格式化时，可以直接格式化表达式哦，简化代码
"""
# 列如
print("1+1的结果为：%d" % (1+1))
print(f"1+1的结果为：{1+1}")
print("1+1的结果为：%d" % (1+1))
print("字符串在python的类型名是：%s" % type("字符串"))

# 数据输入：
"""
print语句用于将完成的内容（字面量、变量等）输出到屏幕；数据输出：print
input用于获取键盘的输入    数据输入：input
1、使用input()语句可以从键盘上获取输入；
2、使用一个变量接收（存储）input()语句获取的键盘输入即可；
例1
print("请告诉我你是谁？")
name = input()
print("Get！！！你是：%s" % name)
例2
name = input("请告诉我你是谁?")
print("Get!!!你是：%s" % name)
不管input输入的是什么数据，获取到的数据永远都是字符串，可以使用数据类型转换
"""
# 输入数字类型
"""num = input("请输入你的银行卡密码：")
# 数据类型转换
num = int(num)
print("你的银行卡密码类型是:", type(num))
"""





































